স্প্রিং জেডিবিসি-র মাধ্যমে JdbcTemplate
ব্যবহার করে CRUD (Create, Read, Update, Delete) অপারেশন পরিচালনা করা খুবই সহজ। এখানে প্রতিটি অপারেশনের জন্য ধাপে ধাপে উদাহরণ দেওয়া হলো।
ডিপেন্ডেন্সি সংযোজন:
Maven-এ স্প্রিং জেডিবিসি এবং ডাটাবেস ড্রাইভার যোগ করুন।
(উদাহরণস্বরূপ, MySQL-এর জন্য)
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.x.x</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.x.x</version>
</dependency>
ডাটাসোর্স কনফিগারেশন:
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/your_database");
dataSource.setUsername("your_username");
dataSource.setPassword("your_password");
return dataSource;
}
JdbcTemplate সেটআপ:
@Bean
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
একটি নতুন রেকর্ড সন্নিবেশ করা।
public void addUser(String name, String email) {
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";
jdbcTemplate.update(sql, name, email);
}
ব্যবহার:
addUser("John Doe", "john@example.com");
public List<User> getAllUsers() {
String sql = "SELECT * FROM users";
return jdbcTemplate.query(sql, (rs, rowNum) -> new User(
rs.getInt("id"),
rs.getString("name"),
rs.getString("email")
));
}
public User getUserById(int id) {
String sql = "SELECT * FROM users WHERE id = ?";
return jdbcTemplate.queryForObject(sql, new Object[]{id}, (rs, rowNum) -> new User(
rs.getInt("id"),
rs.getString("name"),
rs.getString("email")
));
}
ব্যবহার:
User user = getUserById(1);
System.out.println(user.getName());
একটি রেকর্ড আপডেট করা।
public void updateUser(int id, String name, String email) {
String sql = "UPDATE users SET name = ?, email = ? WHERE id = ?";
jdbcTemplate.update(sql, name, email, id);
}
ব্যবহার:
updateUser(1, "John Smith", "johnsmith@example.com");
একটি রেকর্ড মুছে ফেলা।
public void deleteUser(int id) {
String sql = "DELETE FROM users WHERE id = ?";
jdbcTemplate.update(sql, id);
}
ব্যবহার:
deleteUser(1);
public class User {
private int id;
private String name;
private String email;
// Constructor
public User(int id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
}
// Getters and Setters
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
@Service
public class UserService {
private final JdbcTemplate jdbcTemplate;
public UserService(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
// CRUD methods here
}
স্প্রিং ট্রানজেকশন ম্যানেজমেন্ট যোগ করতে @Transactional
অ্যানোটেশন ব্যবহার করতে পারেন।
@Transactional
public void performMultipleOperations() {
addUser("Alice", "alice@example.com");
updateUser(2, "Bob", "bob@example.com");
deleteUser(3);
}
JdbcTemplate
ব্যবহার করে CRUD অপারেশন খুব দ্রুত এবং সহজে সম্পন্ন করা যায়। এটি বিশেষত তখন কার্যকর, যখন Hibernate বা JPA-এর মতো ভারী ORM-এর প্রয়োজন নেই।
Read more